Skip to content

perf: skip discarded syntax AST rebuild - #257

Open
lm-sousa wants to merge 4 commits into
dumper-polish-offsetof-basefrom
syntax-rebuild-optimization
Open

perf: skip discarded syntax AST rebuild#257
lm-sousa wants to merge 4 commits into
dumper-polish-offsetof-basefrom
syntax-rebuild-optimization

Conversation

@lm-sousa

@lm-sousa lm-sousa commented Sep 4, 2026

Copy link
Copy Markdown
Member

Clava's rebuildAst(false) path validated rewritten source by running clang/clang-dumper and then decoding the complete AST even though the rebuilt tree was immediately discarded.

This adds a diagnostics-only validation path: it invokes the same clang/clang-dumper pipeline, drains stdout without AST decoding, preserves stderr and exit-status handling, and leaves rebuildAst(true) on the full-parse path. The validator also receives the system resource directory required by the current clang setup.

Measured impact: six paired runs show a median execution-time reduction of 11.1% (14.02 s); the mean reduction is 13.2%. The paired 95% confidence interval for the saving is 9.42–23.42 s (p = 0.0018). Full benchmark report.

Verification:

  • gradle --project-dir ClavaWeaver clean installDist
  • git diff --check
  • output-checked Clava-JS suite: 161 passed, 3 skipped (excluding the pre-existing FileIterator failure from unrelated staged Lara changes)

Model: Codex (GPT-5.6-luna).

@sonarqubecloud

sonarqubecloud Bot commented Sep 4, 2026

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 992a85ec4c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread ClangAstParser/src/pt/up/fe/specs/clang/codeparser/ParallelCodeParser.java Outdated
Keep rebuildAst(true) as the full replacement-tree path, while rebuildAst(false) validates woven sources through clang-dumper without decoding its output into a temporary Clava AST.
Update the diagnostics-only ClangAstDumper construction for the rebased constructor signature.
Replace the parallel validateSyntax orchestration chain (abstract method on
CodeParser plus duplicated setup in ParallelCodeParser) with a SYNTAX_ONLY
flag consulted by the existing parse() path, so clang arguments, resources,
parallelism, and error handling have a single source of truth.
ClangAstDumper.validateSyntax now returns the error message directly.
@lm-sousa
lm-sousa force-pushed the syntax-rebuild-optimization branch from 56ad84e to 4e3540a Compare September 6, 2026 03:16
@sonarqubecloud

sonarqubecloud Bot commented Sep 6, 2026

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant